package com.yangrong.thread.chapter6;

import java.util.concurrent.TimeUnit;

/**
 * 区别: 是否会清除interrupt标志.
 * isInterrupt()方法不会改变标志,而interrupted()方法会在检测的同时,如果发现标志为true,则会返回true,然后把标志置为false.
 * 
 * @author YangRong
 * @date 2020年5月26日
 */
public class ThreadInterrupt2 {

//	public static void main(String[] args) {
//		Thread thread = new Thread() {
//			@Override
//			public void run() {
//				while (!Thread.interrupted()) {
//					System.out.println("我还稳得住...");
//				}
//				System.out.println(Thread.interrupted());
//			}
//		};
//		try {
//			thread.start();
//			TimeUnit.SECONDS.sleep(3);
//			thread.interrupt();
//		} catch (InterruptedException e) {
//			e.printStackTrace();
//		}
//	}

	// 上面实例说明Thread.interrupted()方法会在标志为true的情况下修改interrupted的标志.

	public static void main(String[] args) {
		Thread thread = new Thread() {
			@Override
			public void run() {
				// 修改方法
				while (!isInterrupted()) {
					System.out.println("我还稳得住...");
				}
				System.out.println(Thread.interrupted());
			}
		};
		try {
			thread.start();
			TimeUnit.SECONDS.sleep(3);
			thread.interrupt();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

}
